Adaptive filters adjust filter coefficients based on an error signal. The error signal (ε) is determined based on an output signal (y) from the adaptive filter and a reference (or desired response) signal (d). The output signal is generated based on the error signal and an input signal. The input signal may be represented as a frequency domain vector, X. The error signal may be represented as a vector, wherein each vector entry is a sample value taken at a distinct time instant. The length of the vector error signal may be extended by the addition of a plurality of entries, each of which has a value of 0. The zero-filled error signal vector, which may be represented in the time domain, is converted to a frequency domain error signal (E) by utilizing a fast Fourier transform (FFT). A complex conjugate transpose (XH) of the input signal X is also generated. The complex conjugate transpose XH and frequency domain error signal E may be convolved to generate a convolution result, for example, by performing a circular convolution operation.
The convolution result may be subjected to a gradient constraint operation. For example, the convolution result may be converted to a time domain representation by utilizing an inverse fast Fourier transform (IFFT). The time domain convolution result, which may be represented as a vector, may be zero filled as described above. The zero-filled time domain convolution result may be converted to a frequency domain representation by utilizing a FFT to generate a constrained convolution result.
The constrained convolution result may be multiplied by a step size parameter (μ) to generate an adjustment vector. The adjustment vector may comprise a plurality of adjustment values. The adjustment vector may be added to a current filter coefficient vector (H(n), where n represents a time instant index. After a time delay of one time unit, the adjusted coefficient vector becomes the new current filter coefficient vector (H(n+1)).
A new frequency domain representation of the output signal, Y, may be generated by performing a convolution operation on X and H(n+1). The frequency domain Y may be converted to generate a new time domain output signal y. The new output signal y may be utilized to generate a new error signal (ε) as described above.
In instances in which the input signal X corresponds to time domain signal (x) that has a long time duration impulse response, a partitioned adaptive filter approach may be utilized.
Further limitations and disadvantages of conventional and traditional approaches will become apparent to one of skill in the art, through comparison of such systems with some aspects of the present invention as set forth in the remainder of the present application with reference to the drawings.